home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc Source Code / UI / DspUtilM.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  4.5 KB  |  183 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        DspUtilM.cpp
  3.  
  4.     Contains:    xxx put contents here xxx
  5.  
  6.     Owned by:    Richard Rodseth
  7.  
  8.     Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <7>     9/13/95    DM        1277216 GM:API return no ODPoints nor
  13.                                     ODPolygons
  14.          <6>     8/29/95    RR        #1267251 Remove ODLogEvents #define
  15.          <5>     6/20/95    JBS        1257315 change Facet::AcquireWindow to
  16.                                     GetWindow
  17.          <4>     5/26/95    RR        #1251403: Multithreading naming support
  18.          <3>     5/25/95    jpa        Fixed usage of ODDebug. [1253321]
  19.          <2>     5/10/95    RR        # 1239139 Added LogEvent, and
  20.                                     GetActiveFacetWithBorderUnderPoint
  21.  
  22.     To Do:
  23.     In Progress:
  24. */
  25.  
  26. #ifndef _DSPUTILM_
  27. #include "DspUtilM.h" 
  28. #endif
  29.  
  30. #ifndef SOM_ODFacet_xh
  31. #include "Facet.xh"
  32. #endif
  33.  
  34. #ifndef SOM_ODFrame_xh
  35. #include "Frame.xh"
  36. #endif
  37.  
  38. #ifndef SOM_ODFrameFacetIterator_xh
  39. #include "FrFaItr.xh"
  40. #endif
  41.  
  42. #ifndef SOM_ODPart_xh
  43. #include "Part.xh"
  44. #endif
  45.  
  46. #ifndef _TEMPOBJ_
  47. #include "TempObj.h"
  48. #endif
  49.  
  50. void WindowToLocal(Environment* ev, ODPoint& point, ODFacet* facet)
  51. {
  52.     TempODTransform xform = facet->AcquireWindowFrameTransform(ev, facet->GetCanvas(ev));
  53.     xform->InvertPoint(ev, &point);
  54. }
  55.  
  56. ODFacet* GetActiveFacetWithBorderUnderPoint(Environment* ev, ODFrame* frame, ODWindow* window, ODPoint& windowPoint)
  57. {
  58.     ODFacet* foundFacet = kODNULL;
  59.     ODPoint framePoint;
  60.  
  61.     if ( frame && window )
  62.     {
  63.         ODFrameFacetIterator* facets = frame->CreateFacetIterator(ev);
  64.         for ( ODFacet* facet = facets->First(ev);
  65.                 facets->IsNotComplete(ev);
  66.                 facet = facets->Next(ev) )
  67.         {
  68.             // get windowPoint in frame coords for hit-testing
  69.             { TempODTransform winToFrame = facet->AcquireWindowFrameTransform(ev, kODNULL);
  70.               framePoint = windowPoint;
  71.               winToFrame->InvertPoint(ev, &framePoint);
  72.             }
  73.             
  74.             if (ODObjectsAreEqual(ev, facet->GetWindow(ev), window)
  75.                 && (facet->ActiveBorderContainsPoint(ev, &framePoint, kODNULL)) )
  76.             {
  77.                 foundFacet = facet;
  78.                 break;
  79.             }
  80.         }
  81.         delete facets;
  82.     }
  83.     return foundFacet;
  84. }
  85.  
  86. #if ODDebug
  87.  
  88. void LogEvent(ODEventData* event, ODEventInfo* eventInfo, ODFrame* frame, ODFacet* facet)
  89. {
  90.     char eventType[30];
  91.     switch (event->what)
  92.     {
  93.         case kODEvtNull:         
  94.             strcpy(eventType,"NULL");
  95.             break;
  96.         case kODEvtMouseDown: 
  97.             strcpy(eventType,"kODEvtMouseDown");
  98.             break;
  99.         case kODEvtMouseUp:      
  100.             strcpy(eventType,"kODEvtMouseUp");
  101.             break;
  102.         case kODEvtKeyDown: 
  103.             strcpy(eventType,"kODEvtKeyDown");
  104.             break;
  105.         case kODEvtKeyUp: 
  106.             strcpy(eventType,"kODEvtKeyUp");
  107.             break;
  108.         case kODEvtAutoKey: 
  109.             strcpy(eventType,"kODEvtAutoKey");
  110.             break;
  111.         case kODEvtUpdate: 
  112.             strcpy(eventType,"kODEvtUpdate");
  113.             break;
  114.         case kODEvtDisk: 
  115.             strcpy(eventType,"kODEvtDisk");
  116.             break;
  117.         case kODEvtActivate: 
  118.             strcpy(eventType,"kODEvtActivate");
  119.             break;
  120.         case kODEvtOS: 
  121.             strcpy(eventType,"kODEvtOS");
  122.             break;
  123.         case kODEvtBGMouseDown: 
  124.             strcpy(eventType,"kODEvtBGMouseDown");
  125.             break;
  126.         case kODEvtMenu: strcpy(eventType,"kODEvtMenu");
  127.             break;
  128.         case kODEvtMouseDownEmbedded: 
  129.             strcpy(eventType,"kODEvtMouseDownEmbedded");    
  130.             break;
  131.         case kODEvtMouseUpEmbedded: 
  132.             strcpy(eventType,"kODEvtMouseUpEmbedded");
  133.             break;
  134.         case kODEvtMouseDownBorder: 
  135.             strcpy(eventType,"kODEvtMouseDownBorder");
  136.             break;
  137.         case kODEvtMouseUpBorder: 
  138.             strcpy(eventType,"kODEvtMouseUpBorder");
  139.             break;
  140.         case kODEvtWindow: 
  141.             strcpy(eventType,"kODEvtWindow");
  142.             break;
  143.         case kODEvtMouseEnter: 
  144.             strcpy(eventType,"kODEvtMouseEnter");
  145.             break;
  146.         case kODEvtMouseWithin: 
  147.             strcpy(eventType,"kODEvtMouseWithin");
  148.             break;
  149.         case kODEvtMouseLeave: 
  150.             strcpy(eventType,"kODEvtMouseLeave");
  151.             break;
  152.         case kODEvtBGMouseDownEmbedded: 
  153.             strcpy(eventType,"kODEvtBGMouseDownEmbedded");
  154.             break;
  155.         default:     
  156.             strcpy(eventType,"UNKNOWN");
  157.             break;
  158.     }
  159.     somPrintf("Event: %3d %-25s Facet: %x, Frame: %x", event->what, eventType, facet, frame);
  160.     somPrintf(" Coords: %3d,%3d",eventInfo->where.IntX(),eventInfo->where.IntY());
  161.     if ((event->modifiers & shiftKey) != 0)
  162.         somPrintf(" Shift");
  163.     if ((event->modifiers & cmdKey) != 0)
  164.         somPrintf(" Cmd");
  165.     if ((event->modifiers & optionKey) != 0)
  166.         somPrintf(" Opt");
  167.     if ((event->modifiers & controlKey) != 0)
  168.         somPrintf(" Ctl");
  169.     if (eventInfo->propagated)
  170.         somPrintf(" PROPAGATED");
  171.     somPrintf("\n");
  172.     if ((event->what == kODEvtMouseDownEmbedded) ||
  173.         (event->what == kODEvtMouseUpEmbedded) ||
  174.         (event->what == kODEvtBGMouseDownEmbedded) ||
  175.         (event->what == kODEvtMouseDownBorder))
  176.     {
  177.         somPrintf("        Embedded Facet: %x Embedded Frame: %x\n", eventInfo->embeddedFacet, eventInfo->embeddedFrame);
  178.     }
  179. }
  180.  
  181.  
  182. #endif
  183.